# -*- coding: utf-8 -*-
"""
Created on Mon Aug 21 15:34:31 2023

@author: skunk69
"""

import json

chinese_name = u'大学生文科兴趣量表'
english_name = 'Liberal Arts Interest Scale for College Students'
abbreviation = 'LAIS'
category = u'职业价值、态度量表'

outline = u"""兴趣是个性心理特征的重要组成部分，是个体力求认识某种事物或者从事某种活动的心理倾向，表现为人对某种事物、某项活动积极的情绪反应。兴趣的产生，能提高指向兴趣对象的活动效果。当兴趣直接指向与学科有关的活动时，就称之为学科兴趣。学科兴趣是学业成就的重要预测指标之一。学科兴趣在个体选择专业的活动中起着重要作用，主要表现为影响人的学科定向和专业选择，增强人的学习适应性和稳定性。
当学生所从事的学习与其学科兴趣相吻合时，能更好地发挥其才能，并能长时间地保持高效率的学习而较少感觉疲劳；反之，则不能很好地发挥其能力，并且容易感到厌倦和疲劳。在学校里经常能见到因专业不对口而自动退学，或对所学专业不感兴趣的而表现为学习倦怠或困惑的学生。有调查表明在一些高校，因不喜欢所学专业而厌学的学生比例高达40%。文科涵盖专业较多，本量表只涉及部分专业。"""

instruction = u"""下面是关于学习方面的一些问题，每道题都有5个选项，从“很符合”、“比较符合”、“很难说”、“较不符合”和“很不符合”共5个等级。请你根据自己的实际情况进行选择。"""

with open('LAIS.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()

items = {}
for line in lines:
    key,value = line.strip().split('.',maxsplit=1)
    items[key.strip()] = value.strip()

reverse_items = []
scales = [u'中文(Chinese)',u'英语(English)',u'历史(History)',
          u'哲学(Philosophy)',u'政治(Politics)',u'法律(Law)',
          u'新闻(News)']
scales_items = [
    [11,17,23,33,35,43,48,56,58,64,69,82,83,91],# 中文(Chinese)
    [2,8,14,19,20,24,31,37,50,67,70,77,87,94],# 英语(English)
    [1,7,12,18,21,36,44,47,49,59,66,76,86,92],# 历史(History)
    [9,15,22,27,29,40,62,73,80,85,88,89],# 哲学(Philosophy)
    [3,5,25,32,38,45,51,52,60,68,71,78,84,93],# 政治(Politics)
    [4,10,16,26,39,46,53,54,61,72,79,90],# 法律(Law)
    [6,13,28,30,34,41,42,55,57,63,65,74,75,81],# 新闻(News)   
    ]

# check scales_items
print(f'scale length={[len(l) for l in scales_items]}')

check = []
for l in scales_items:
    check = check+l
print(f'len(check)={len(check)}')

# complementary set
check_set = {i for i in sorted(check)}^{i for i in range(1,95)}
print(f'complementary set= {check_set}')

factors = []
factors_scales = []
rating = [u'很符合',u'比较符合',u'很难说',u'较不符合',u'很不符合']
score_rules = list(range(5,0,-1))

contents = {
    'instruction':instruction,
    'items':items,
    'reverse_items':reverse_items,
    'scales':scales,
    'scales_items':scales_items,
    'factors':factors,
    'factors_scales':factors_scales,
    'rating':rating,
    'score_rules':score_rules       
    }

implementation = u"""《大学生文科兴趣量表》属于一个自评量表。"""

reliability = u"""正式样本为1478名文科大学生，采用t检验法、相关系数法及因子分析法等联合对测验条目进行筛选，共删除条目60条，最后确定由94个条目组成文科兴趣量表正式版。
对52名文科大学生完成第一次测验后2周进行重测，分别计算各分量表和量表总分的重测信度系数。结果显示，各分量表的重测信度系数为0.744-0.873(P<0.01)，全量表的重测信度系数为0.896(P<0.01)。总量表的Cronbach α系数为0.959，7个分量表的Cronbach α系数分别为0.865.0.913和0.888，0.734，0.857，0.852，0.896。总量表的分半信度为0.924；各分量表的分半信度为0.750~0.889."""
validity = u"""各分量表间的相关系数为0.150-0.619(P<0.01)；各分量表与量表总分间相关系数为-0.550-0.796（P＜0.01).。验证性因素分析结果显示，拟合优度指数的卡方检验x^2/df=2.415，比较拟合指数(CFZ)=0.925，非正规划指数(TLJ)=0.879，均方根残差(RMSEA)=0.025，提示模型拟合合理。
比较不同性别的文科专业大学生在各分量表及总量表分间的差异。结果显示，各分量表分及量表总分在男女性别上都有差异(P＜0.01)。不同年级各分量表分数的比较，结果显示，除英语分量表外，其余分量表在大四与大一、大二、大三比较上有高著性差异。"""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""将各维度条目相加得到各维度分，所有条目得分相加得到总分。"""

applications = u"""实际应用效果尚有待后续研究的证实。"""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':contents,
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)